…
AArch64 MP+fencewmbonceonce+addronceonce-[fronceonce-rf]onceonce
"FenceWmbdWWOnceOnce RfeOnceOnce DpAddrdROnceOnce FrLeaveOnceOnce RfBackOnceOnce FreOnceOnce"
Mapping=1:X5=r3,1:X3=r2,1:X2=r1,1:X0=r0,
Hash=d5b9e5f37ddbd398b0b4e43a1992d9e4
Prefetch=0:x=F,0:y=W,1:y=F,1:x=T
Com=Rf Fr Rf
Orig=FenceWmbdWWOnceOnce RfeOnceOnce DpAddrdROnceOnce FrLeaveOnceOnce RfBackOnceOnce FreOnceOnce
{0:X1=y; 0:X0=x; 1:X4=x; 1:X1=y; 2:X0=x;}
P0 | P1 | P2 ;
MOV W2,#2 | LDR W0,[X1] | MOV W1,#1 ;
STR W2,[X0] | EOR W2,W0,W0 | STR W1,[X0] ;
DMB ST | LDR W3,[X4,W2,SXTW] | ;
MOV W2,#1 | LDR W5,[X4] | ;
STR W2,[X1] | | ;
Observed
x=2; 1:X5=1; 1:X3=2; 1:X0=1;
and x=2; 1:X5=0; 1:X3=2; 1:X0=1;
and x=1; 1:X5=0; 1:X3=2; 1:X0=1;
and x=1; 1:X5=2; 1:X3=1; 1:X0=1;
and x=1; 1:X5=0; 1:X3=1; 1:X0=1;
and x=2; 1:X5=1; 1:X3=2; 1:X0=0;
and x=2; 1:X5=0; 1:X3=2; 1:X0=0;
and x=1; 1:X5=0; 1:X3=2; 1:X0=0;
and x=1; 1:X5=2; 1:X3=1; 1:X0=0;
and x=2; 1:X5=0; 1:X3=1; 1:X0=0;
and x=1; 1:X5=0; 1:X3=1; 1:X0=0;